/**
 * 聊天界面Activity，负责显示消息列表和处理消息发送功能
 */
package com.example.gitpart03;

import android.os.Build;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;

import com.example.gitpart03.R;
import com.example.gitpart03.adapter.MsgAdapter;
import com.example.gitpart03.entity.Msg;

import java.util.ArrayList;
import java.util.List;

public class MainActivity2 extends AppCompatActivity {

    private List<Msg> msgDate = new ArrayList<>();  // 消息数据列表

    /**
     * 初始化界面，设置返回按钮监听，加载初始消息数据，配置消息列表适配器2
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main2);

        // 自定义返回按钮监听，关闭当前Activity返回上一级
        ImageButton btnBack = findViewById(R.id.btn_back);
        btnBack.setOnClickListener(v -> finish());

        // 初始化默认消息数据
        Msg m1 = new Msg(R.drawable.add_friend, "您好！", 1);
        Msg m2 = new Msg(R.drawable.add_friend, "请问有什么可以帮您？", 1);
        msgDate.add(m1);
        msgDate.add(m2);

        // 配置消息列表适配器
        MsgAdapter msgAdapter = new MsgAdapter(MainActivity2.this, R.layout.item_msg, msgDate);
        ListView msgList = findViewById(R.id.list_msg);
        msgList.setAdapter(msgAdapter);

        // 设置沉浸式状态栏（API 19+）
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            getWindow().setFlags(
                    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
                    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
            );
        }

        // 发送按钮点击事件处理
        Button sendBtn = findViewById(R.id.btn_send);
        sendBtn.setOnClickListener(v -> {
            EditText msgEdit = findViewById(R.id.edit_msg);
            String content = msgEdit.getText().toString().trim();
            if (!content.isEmpty()) {
                Msg newMsg = new Msg(R.drawable.add_friend, content, 0);
                msgDate.add(newMsg);
                msgAdapter.notifyDataSetChanged();  // 刷新列表
                msgList.smoothScrollToPosition(msgDate.size() - 1);  // 滚动到底部
                msgEdit.setText("");  // 清空输入框
            }
        });
    }

    /**
     * 处理ActionBar返回按钮事件
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            finish();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
